package 线程.作业.死锁;

public class sisuo01 {
    public/*公共方便一会使用*/ static/*静态*/ final/*最终-不可更改*/ String 锁一 = new String();
    public/*公共方便一会使用*/ static/*静态*/ final/*最终-不可更改*/ String 锁二 = new String();

}

class suoyi extends Thread {
    @Override
    public void run() {
        synchronized (sisuo01.锁一) {
            //那完了第一个
            System.out.println("锁一拿到了钥匙一");
            synchronized (sisuo01.锁二) {
                //继续拿第二个
                System.out.println("锁一拿到了钥匙二");
            }
        }


    }
}

class suoer extends Thread {
    @Override
    public void run() {
        synchronized (sisuo01.锁二) {
            System.out.println("锁二拿到了钥匙二");
            //拿完了第一个
            synchronized (sisuo01.锁一) {
                //继续要第二个
                System.out.println("锁二拿到了钥匙一");
            }
        }

    }
}

class 死锁 {
    public static void main(String[] args) {
        new Thread(new suoyi()).start();
        new Thread(new suoer()).start();
    }
}